1. Field of the Invention
This invention relates to the field of data processing, and, more particularly, to an improved video subsystem for concurrently displaying graphic and image data on a screen using pixel-mode interpretation.
2. Description of Related Art
Display architectures have historically provided "modes" that select a trade-off between resolution and color space. Dual plane multimedia display systems are faced with further trade-offs in allocation of video memory and bandwidth between the image and graphics layers. Addressing the diverse requirements of various applications sharing a screen in a graphical user interface cannot be accomplished efficiently with modes that apply to the entire screen.
Previous implementations of multimedia video hardware systems have taken two basic approaches for display of natural images. One approach is a single plane color lookup table (CLUT) or direct RGB (red-green-blue) graphics, and the other is a dual layer system with in-buffer image compression. RGB direct color systems require a minimum of 16-bits per pixel to achieve acceptable rendering of images. Color lookup table (palette) systems require a minimum of 8-bits per pixel to index into the color palette, and the palette must be calculated for each image to get the best results. Palette systems are limited when images using different palette selections are displayed concurrently, or when the range of colors present in an image is so varied that the limitation of 256-colors becomes noticeable.
One drawback of the single layer RGB design is that it does not take advantage of in-buffer compression methods that enable display of image with less video memory than that required by direct RGB color. RGB image display is therefor more costly in that the additional video memory required for image display goes largely unused in the display of traditional graphics and typographic font output of applications. Another disadvantage is that graphics overlays of image are always destructive, i.e., the image must be restored when the overlay is moved or removed. This is particularly significant when the image is being updated from a live input which is frozen; the data will not be present when the overlay is removed. A final limitation is that since RGB direct color does not use a palette or color table lookup, palette animation techniques are precluded.
On the other hand, dual layer systems with in-buffer image compression enable display of a natural image with fewer bits per pixel by storing the image in a compressed format in video buffer separate from the graphics video buffer, which is considered a second "layer", and multiplexing the outputs of the graphics video buffer and the image video buffer. This is usually one of several various subsampled luminance/chrominance formats commonly referred to as "YUV" formats that take advantage of the characteristics of the human visual system in which chrominance or color is not as perceptible as luminance or brightness. Since image and graphics data are stored separately, dual layer systems require video memory for both the graphics and image layers. This generally is a minimum of 16-bits per pixel; 8-bits per pixel for graphics, and 8-bits per pixel for a YUV8 image.
Dual layer systems have two advantages over single layer systems. First, the second layer permits independent manipulation of graphics overlay in a nondestructive fashion, i.e., graphics does not modify the underlying image so it can be removed or repositioned without having to "heal" the image. Second, the image data stored in the second layer can be stored in a compressed image format thus conserving video memory space and bandwidth.
Dual layer systems also have drawbacks. With two layers, at any given time any pixel on the screen is represented by information from only one of the layers because the user sees only one layer at a time. The information in one of the buffers for each pixel is unused so in a sense the dual layer display wastes some of the information in the buffer because it is storing information the user cannot see. At lower resolutions this is not a major consideration, but at higher resolutions, such as 1024.times.768, the additional memory usage represents a significant increase in cost. Depending on the memory increment of the hardware technology employed, providing CLUT8 graphics and YUV8 buffers in a dual layer system (16-bits per pixel total) requires 1.5 to 2 megabytes (MB) of video memory. Assuming 1.0 MB as a reasonable cost point, 1024.times.768 resolution imposes a limit of 10-bits per pixel.